package com.zp.drug.entity.bo;

import com.zp.common.core.entity.BaseEntity;
import com.zp.common.core.validate.AddGroup;
import com.zp.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 药品价表日志业务对象
 *
 * @author zhang peng
 * @ date 2023-06-16
 */

@Data
@EqualsAndHashCode(callSuper = true)
public class DrugPriceLogBo extends BaseEntity {

    /**
     * 主键
     */
//                @NotBlank(message = "主键不能为空" , groups = { EditGroup.class })
    private String id;

    /**
     * 药品信息ID
     */
//                @NotBlank(message = "药品信息ID不能为空" , groups = { AddGroup.class, EditGroup.class })
    private String drugInfoId;

    /**
     * 药品价格ID
     */
    @NotBlank(message = "药品价格ID不能为空", groups = {AddGroup.class, EditGroup.class})
    private String drugPriceId;

    /**
     * 医保类型
     */
    @NotBlank(message = "医保类型不能为空", groups = {AddGroup.class, EditGroup.class})
    private String medicalInsuranceType;

    /**
     * 价表ID
     */
//                @NotBlank(message = "价表ID不能为空" , groups = { AddGroup.class, EditGroup.class })
    private String priceId;

    /**
     * 包装规格
     */
    @NotBlank(message = "包装规格不能为空", groups = {AddGroup.class, EditGroup.class})
    private String packageSpec;

    /**
     * 药品单位
     */
    @NotBlank(message = "药品单位不能为空", groups = {AddGroup.class, EditGroup.class})
    private String packageUnits;

    /**
     * 网络价格
     */
//                @NotNull(message = "网络价格不能为空" , groups = { AddGroup.class, EditGroup.class })
    private BigDecimal networkPrice;

    /**
     * 进价
     */
    @NotNull(message = "进价不能为空", groups = {AddGroup.class, EditGroup.class})
    private BigDecimal tradePrice;

    /**
     * 市场零售价
     */
    @NotNull(message = "市场零售价不能为空", groups = {AddGroup.class, EditGroup.class})
    private BigDecimal retailPrice;

    /**
     * 起用日期
     */
    @NotNull(message = "起用日期不能为空", groups = {AddGroup.class, EditGroup.class})
    private Date startDate;

    /**
     * 停止日期
     */
//                @NotNull(message = "停止日期不能为空" , groups = { AddGroup.class, EditGroup.class })
    private Date stopDate;

    /**
     * 门诊费用分类
     */
//                @NotBlank(message = "门诊费用分类不能为空" , groups = { AddGroup.class, EditGroup.class })
    private String classOnRcpt;

    /**
     * 住院费用分类
     */
//                @NotBlank(message = "住院费用分类不能为空" , groups = { AddGroup.class, EditGroup.class })
    private String classOnInp;

    /**
     * 核算项目分类
     */
//                @NotBlank(message = "核算项目分类不能为空" , groups = { AddGroup.class, EditGroup.class })
    private String classOnReckoning;

    /**
     * 会计科目
     */
//                @NotBlank(message = "会计科目不能为空" , groups = { AddGroup.class, EditGroup.class })
    private String subjCode;

    /**
     * 病案首页分类
     */
//                @NotBlank(message = "病案首页分类不能为空" , groups = { AddGroup.class, EditGroup.class })
    private String classOnMr;

    /**
     * 最高限价
     */
//                @NotNull(message = "最高限价不能为空" , groups = { AddGroup.class, EditGroup.class })
    private BigDecimal priceMax;

    /**
     * 是否是最新药品价格
     */
//                @NotBlank(message = "是否是最新药品价格不能为空" , groups = { AddGroup.class, EditGroup.class })
    private String isNew;

    /**
     * 机构ID
     */
//                @NotBlank(message = "机构ID不能为空" , groups = { AddGroup.class, EditGroup.class })
    private String orgId;

    /**
     * 备注信息
     */
//                @NotBlank(message = "备注信息不能为空" , groups = { AddGroup.class, EditGroup.class })
    private String remarks;

    /**
     * 比例
     */
//                @NotNull(message = "比例不能为空" , groups = { AddGroup.class, EditGroup.class })
    private BigDecimal ratio;

    /**
     * 操作类型0-新增；1-修改；2-调价；3停价；4-启用；9-其他
     */
    @NotBlank(message = "操作类型0-新增；1-修改；2-调价；3停价；4-启用；9-其他不能为空", groups = {AddGroup.class, EditGroup.class})
    private String operationType;

    /**
     * 药品代码
     */
    @NotBlank(message = "药品代码不能为空", groups = {AddGroup.class, EditGroup.class})
    private String drugCode;

    /**
     * 药品名称
     */
    @NotBlank(message = "药品名称不能为空", groups = {AddGroup.class, EditGroup.class})
    private String drugName;


}
